// Copyright  2004-2008 Backplane Ltd.
//
// This file is part of Ubiquity formsPlayer
//
// Ubiquity formsPlayer is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3 of the License, or (at your
// option) any later version.
//
// Ubiquity formsPlayer is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
// more details.
//
// You should have received a copy of the GNU General Public License
// along with Ubiquity formsPlayer If not, see <http://www.gnu.org/licenses/>.
//	
//
//   Purpose: declaration of CXFormsParseSelection.
//   $Id$


#pragma once
#include "parseFormControlInput.h"

class CImplSelection;

class CXFormsParseSelection : public CXFormsParseFormControlInput
{
public:
	CXFormsParseSelection(CImplSelection* pImpl);
	virtual ~CXFormsParseSelection() { };
	virtual void CheckElement(IHTMLElement *pElem, BSTR bstrTag, CImpl* pImpl);
};

class CImplSelectOne;

class CXFormsParseSelectOne : public CXFormsParseSelection
{
public:
	CXFormsParseSelectOne(CImplSelectOne* pImpl);
	virtual ~CXFormsParseSelectOne() { };
};

class CImplChoices;
class CXFormsParseChoices : public CXFormsParse
{
public:
	CXFormsParseChoices(CImplChoices* pImpl);
	virtual ~CXFormsParseChoices()
	{
	};
	virtual void CheckElement(IHTMLElement *pElem, BSTR bstrTag, CImpl* pImpl);
};

class CImplValue;
class CXFormsParseValue : public CXFormsParseSingleNodeBinding
{
public:
	CXFormsParseValue(CImplValue* pImpl);
	virtual ~CXFormsParseValue() { };
};

class CImplCopy;
class CXFormsParseCopy : public CXFormsParseSingleNodeBinding
{
public:
	CXFormsParseCopy(CImplCopy* pImpl);
	virtual ~CXFormsParseCopy() { };
};
#include "parseNodesetBinding.h"
class CImplItemset;
class CXFormsParseItemset : public CXFormsParseNodesetBinding
{
public:
	CXFormsParseItemset(CImplItemset* pImpl);
	virtual ~CXFormsParseItemset() { };
	virtual void CheckElement(IHTMLElement *pElem, BSTR bstrTag, CImpl* pImpl);
};



class CImplItem;
class CXFormsParseValue;

class CXFormsParseItem : public CXFormsParse
{
public:
	CXFormsParseItem(CImplItem* pImpl);
	virtual ~CXFormsParseItem();
	virtual void CheckElement(IHTMLElement *pElem, BSTR bstrTag, CImpl* pImpl);
	
	// Removed to fix bug 239
	// virtual HRESULT Parse(IHTMLElement* pElem, CImpl* pImpl);
};
